package main

import (
	"fmt"
	"time"

	"gitee.com/wulalade/hwpack/gst"
)

func main() {
	fmt.Println("gst_demo")
	//pipeline, err := gst.ParseLaunch("nvarguscamerasrc sensor-id=0 ! queue ! videoconvert ! omxh264enc ! h264parse ! flvmux ! fakesink")
	//pipeline, err := gst.ParseLaunch("nvarguscamerasrc sensor-id=0 ! queue ! videoconvert ! omxh264enc ! h264parse ! flvmux ! rtmpsink sync=false location=rtmp://127.0.0.1/live/livestream")

	//pipeline, err := gst.ParseLaunch("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=(int)320, height=(int)240, format=(string)NV12,framerate=(fraction)20/1 ! queue ! videoconvert ! omxh264enc ! h264parse ! flvmux ! rtmpsink sync=false location=\"rtmp://127.0.0.1/live/livestream\"")
	pipeline, err := gst.ParseLaunch("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=(int)1024, height=(int)768, format=(string)NV12,framerate=(fraction)20/1 ! queue ! videoconvert ! omxh264enc ! h264parse ! flvmux ! rtmpsink sync=false location=\"rtmp://127.0.0.1/live/livestream\"")

	//pipeline, err := gst.ParseLaunch("nvarguscamerasrc sensor-id=0 name=mysource ! queue ! videoconvert ! omxh264enc ! h264parse ! flvmux ! rtmpsink sync=false location=rtmp://127.0.0.1/live/livestream")

	if err != nil {
		fmt.Println("ParseLaunch is err ", err)
		return
	}

	pipeline.SetState(gst.StatePlaying)

	time.Sleep(time.Second * 20)

	pipeline.SetState(gst.StateNull)
	pipeline = nil

}
